﻿

using System.ComponentModel;
using System.Runtime.CompilerServices;

namespace COVID_19_LiquidFillUI.Models
{
    public class DispVisionPoint1 : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler? PropertyChanged;
        private void NotifyPropertyChanged([CallerMemberName] string propertyName = "")
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }
        public int PcsOrder { get; set; }
        private int thresholdMin;

        public int ThresholdMin
        {
            get { return thresholdMin; }
            set
            {
                if (value != thresholdMin)
                {
                    thresholdMin = value;
                    NotifyPropertyChanged();
                }
            }
        }
        private int thresholdMax;

        public int ThresholdMax
        {
            get { return thresholdMax; }
            set
            {
                if (value != thresholdMax)
                {
                    thresholdMax = value;
                    NotifyPropertyChanged();
                }
            }
        }
        private int judgeArea;

        public int JudgeArea
        {
            get { return judgeArea; }
            set
            {
                if (value != judgeArea)
                {
                    judgeArea = value;
                    NotifyPropertyChanged();
                }
            }
        }
    }
    public class DispVisionPoint2 : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler? PropertyChanged;
        private void NotifyPropertyChanged([CallerMemberName] string propertyName = "")
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }
        public int PcsOrder { get; set; }
        private int thresholdMin;

        public int ThresholdMin
        {
            get { return thresholdMin; }
            set
            {
                if (value != thresholdMin)
                {
                    thresholdMin = value;
                    NotifyPropertyChanged();
                }
            }
        }
        private int thresholdMax;

        public int ThresholdMax
        {
            get { return thresholdMax; }
            set
            {
                if (value != thresholdMax)
                {
                    thresholdMax = value;
                    NotifyPropertyChanged();
                }
            }
        }
        private int judgeArea;

        public int JudgeArea
        {
            get { return judgeArea; }
            set
            {
                if (value != judgeArea)
                {
                    judgeArea = value;
                    NotifyPropertyChanged();
                }
            }
        }
    }
    public class DispMDrawCircle : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler? PropertyChanged;
        private void NotifyPropertyChanged([CallerMemberName] string propertyName = "")
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }
        public int PcsOrder { get; set; }
        private double row;

        public double Row
        {
            get { return row; }
            set
            {
                if (value != row)
                {
                    row = value;
                    NotifyPropertyChanged();
                }
            }
        }
        private double column;

        public double Column
        {
            get { return column; }
            set
            {
                if (value != column)
                {
                    column = value;
                    NotifyPropertyChanged();
                }
            }
        }
        private double radius;

        public double Radius
        {
            get { return radius; }
            set
            {
                if (value != radius)
                {
                    radius = value;
                    NotifyPropertyChanged();
                }
            }
        }
        private int measureThrehold;

        public int MeasureThrehold
        {
            get { return measureThrehold; }
            set
            {
                if (value != measureThrehold)
                {
                    measureThrehold = value;
                    NotifyPropertyChanged();
                }
            }
        }
        private double sT_RadiusMin;

        public double ST_RadiusMin
        {
            get { return sT_RadiusMin; }
            set
            {
                if (value != sT_RadiusMin)
                {
                    sT_RadiusMin = value;
                    NotifyPropertyChanged();
                }
            }
        }
        private double sT_RadiusMax;

        public double ST_RadiusMax
        {
            get { return sT_RadiusMax; }
            set
            {
                if (value != sT_RadiusMax)
                {
                    sT_RadiusMax = value;
                    NotifyPropertyChanged();
                }
            }
        }
    }
    public class DispMJudge : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler? PropertyChanged;
        private void NotifyPropertyChanged([CallerMemberName] string propertyName = "")
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }
        public int PcsOrder { get; set; }
        private double sT_DistMin;

        public double ST_DistMin
        {
            get { return sT_DistMin; }
            set
            {
                if (value != sT_DistMin)
                {
                    sT_DistMin = value;
                    NotifyPropertyChanged();
                }
            }
        }
        private double sT_DistMax;

        public double ST_DistMax
        {
            get { return sT_DistMax; }
            set
            {
                if (value != sT_DistMax)
                {
                    sT_DistMax = value;
                    NotifyPropertyChanged();
                }
            }
        }
        private int circleIndex0;

        public int CircleIndex0
        {
            get { return circleIndex0; }
            set
            {
                if (value != circleIndex0)
                {
                    circleIndex0 = value;
                    NotifyPropertyChanged();
                }
            }
        }
        private int circleIndex1;

        public int CircleIndex1
        {
            get { return circleIndex1; }
            set
            {
                if (value != circleIndex1)
                {
                    circleIndex1 = value;
                    NotifyPropertyChanged();
                }
            }
        }
    }
}
